
$(function(){
	var parameter = Base64.decode(UrlParm.parm("parameter"));
	var service_id = UrlParmValue(parameter).parm("service_id");
    var url = UrlParmValue(parameter).parm("url");
    var service_url_id = UrlParmValue(parameter).parm("service_url_id");
    var service_name = UrlParmValue(parameter).parm("service_name");
    
    $("#id_title_api").text(service_name);
    //API文档
    $("#id_api_aid").text(service_name+"列表");
 	 //接口地址
    $("#id_url").text(url);
    $("#id_api_des_info").text("根据查询条件，查询相应"+service_name)
    //请求示例
    $("#id_request_case").text(url+"/"+service_url_id);
    
    //API测试工具
    var parameter = Base64.encode("url="+url+"&service_id="+service_id+"&service_url_id="+service_url_id+"&service_name="+service_name+"&v=1");
    $(".class_api-test-tools").attr("href","./interfaceTest.html?parameter="+parameter);
    
    //请求参数说明
    getApiRequestParametersInfo(service_id);
    
    //返回参数说明
    getApiReturnParametersInfo(service_id);
    
    //JSON返回格式示例
    jsonReturnFormat();
	
});

function getApiRequestParametersInfo(service_id){
	$.ajax({
		type : "post",
		url :  "api/getApiRequestParametersInfo",
		data : {
			"service_id" : service_id
		},
		dataType : "json",
		success : function(data) {
			if (data.flag) {
				var datas = data.datas;
				$("#id_request_table_div").empty();
				var str = '<label class="linep" for="params">请求参数说明：</label>'+
		                  '<div style="font-size:20px;"><a href="javascript:request_parameters_add('+service_id+')">新增</a></div>'+
                          '<table class="table table-bordered table-striped table-condensed" id="request_parameters_table" style="font-size: 12px;">'+
				          	  '<tr><td width="150px;">名称</td><td width="150px;">必填</td><td>类型</td><td>说明</td><td>操作</td></tr>'+
				          	  '<tr><td>id</td><td>是</td><td>string</td><td>接口查询ID</td><td></td></tr>';
				for(var i = 0 ; i < datas.length; i++){
					var data = datas[i];
					str += '<tr><td style="display:none"><input class="form-control input-sm" type="text" style="width:100%" readonly value="'+data['id']+'"></td>'+
					            '<td><input class="form-control input-sm" type="text" style="width:100%" readonly value="'+data['columns']+'"></td>'+
					            '<td><input class="form-control input-sm" type="text" style="width:100%" readonly value="'+data['isRequired']+'"></td>'+
					            '<td><input class="form-control input-sm" type="text" style="width:100%" readonly value="'+data['type']+'"></td>'+
					            '<td><input class="form-control input-sm" type="text" style="width:100%" readonly value="'+data['describes']+'"></td>'+
					            '<td><a onclick="request_parameters_edit(this,'+service_id+')">编辑</a><a style="display:none" onclick="request_parameters_del(this)">删除</a></td>'+
					        '</tr>';
				}
				str += '</table>';
				$("#id_request_table_div").append(str);
			}
		}
	});
}

function getApiReturnParametersInfo(service_id){
	$.ajax({
		type : "post",
		url :  "api/getApiReturnParametersInfo",
		data : {
			"service_id" : service_id
		},
		dataType : "json",
		success : function(data) {
			if (data.flag) {
				var datas = data.datas;
				$("#id_return_table_div").empty();
				
				var str = '<label class="linep" for="params">返回参数说明：</label>'+
				          '<div style="font-size:20px;"><a href="javascript:return_parameters_add('+service_id+')">新增</a></div>'+
		                  '<table class="table table-bordered table-striped table-condensed" id="return_parameters_table" style="font-size: 12px;">'+
				          	  '<tr><td width="150px;">名称</td><td width="150px;">类型</td><td>说明</td><td width="70">操作</td></tr>'+
				          	  '<tr><td>status</td><td>int</td><td>返回码</td><td></td></tr>'+
				          	  '<tr><td>msg</td><td>string</td><td>返回结果说明</td><td></td></tr>'+
				          	  '<tr><td>data</td><td>string</td><td>返回结果集</td><td></td></tr>';
				for(var i = 0 ; i < datas.length; i++){
					var data = datas[i];
					str += '<tr><td style="display:none"><input class="form-control input-sm" type="text" style="width:100%" readonly value="'+data['id']+'"></td>'+
					            '<td><input class="form-control input-sm" type="text" style="width:100%" readonly value="'+data['columns']+'"></td>'+
					            '<td><input class="form-control input-sm" type="text" style="width:100%" readonly value="'+data['type']+'"></td>'+
					            '<td><input class="form-control input-sm" type="text" style="width:100%" readonly value="'+data['describes']+'"></td>'+
					            '<td><a onclick="return_parameters_edit(this,'+service_id+')">编辑</a><a style="display:none" onclick="return_parameters_del(this)">删除</a></td>'+
					        '</tr>';
				}
				str += '</table>';
				$("#id_return_table_div").append(str);
			}
		}
	});
}

function return_parameters_edit(evt,service_id){
	var val = $(evt).text();
	if(val == '编辑'){
		val = '提交';
		$(evt).parent().siblings().children("input").removeAttr("readonly");
		$(evt).siblings().css("display","block");
		$(evt).html(val);
	}else{
		var input = $(evt).parent().siblings().children("input");
		var id = input.eq(0).val();
		var columns = input.eq(1).val();
		var type = input.eq(2).val();
		var describes = input.eq(3).val();
		if(trim(columns) == ""){
			
		}
		$.ajax({
			type : "post",
			url :  "api/apiReturnParametersOper",
			data : {
				"id" : id,
				"columns" : columns,
				"type" : type,
				"describes" : describes,
				"service_id" : service_id
			},
			dataType : "json",
			success : function(data) {
				if (data.flag) {
				    val = '编辑';
					input.attr("readonly","readonly");
					$(evt).siblings().css("display","none");
					$(evt).html(val);
				}
			}
		});
	}
}

function return_parameters_add(service_id){
	var str = '<tr><td style="display:none"><input class="form-control input-sm" type="text" style="width:100%" readonly value=""></td>'+
		            '<td><input class="form-control input-sm required" type="text" style="width:100%"  value=""></td>'+
				    '<td><input class="form-control input-sm required" type="text" style="width:100%" value=""></td>'+
				    '<td><input class="form-control input-sm required" type="text" style="width:100%" value=""></td>'+
				    '<td><a onclick="return_parameters_edit(this,'+service_id+')">提交</a><a style="display:block" onclick="return_parameters_del(this)">删除</a></td>'+
				'</tr>';
	$("#return_parameters_table").append(str);
}

function return_parameters_del(evt){
	var id = $(evt).parent().siblings().children("input").eq(0).val();
	if(id == ""){
		$(evt).parent().parent().remove();
	}
	$.ajax({
		type : "post",
		url :  "api/deleteApiReturnParameters",
		data : {
			"id" : id
		},
		dataType : "json",
		success : function(data) {
			if (data.flag) {
				$(evt).parent().parent().remove();
			}
		}
	});
}

function request_parameters_edit(evt,service_id){
	var val = $(evt).text();
	if(val == '编辑'){
		val = '提交';
		$(evt).parent().siblings().children("input").removeAttr("readonly");
		$(evt).siblings().css("display","block");
		$(evt).html(val);
	}else{
		var input = $(evt).parent().siblings().children("input");
		var id = input.eq(0).val();
		var columns = input.eq(1).val();
		var isRequired = input.eq(2).val();
		var type = input.eq(3).val();
		var describes = input.eq(4).val();
		if(trim(columns) == ""){
			
		}
		$.ajax({
			type : "post",
			url :  "api/apiRequestParametersOper",
			data : {
				"id" : id,
				"columns" : columns,
				"isRequired" : isRequired,
				"type" : type,
				"describes" : describes,
				"service_id" : service_id
			},
			dataType : "json",
			success : function(data) {
				if (data.flag) {
				    val = '编辑';
					input.attr("readonly","readonly");
					$(evt).siblings().css("display","none");
					$(evt).html(val);
				}
			}
		});
	}
}

function request_parameters_add(service_id){
	var str = '<tr><td style="display:none"><input class="form-control input-sm" type="text" style="width:100%" readonly value=""></td>'+
		            '<td><input class="form-control input-sm required" type="text" style="width:100%"  value=""></td>'+
				    '<td><input class="form-control input-sm required" type="text" style="width:100%" value=""></td>'+
				    '<td><input class="form-control input-sm required" type="text" style="width:100%" value=""></td>'+
				    '<td><input class="form-control input-sm required" type="text" style="width:100%" value=""></td>'+
				    '<td><a onclick="request_parameters_edit(this,'+service_id+')">提交</a><a style="display:block" onclick="request_parameters_del(this)">删除</a></td>'+
				'</tr>';
	$("#request_parameters_table").append(str);
}

function request_parameters_del(evt){
	var id = $(evt).parent().siblings().children("input").eq(0).val();
	if(id == ""){
		$(evt).parent().parent().remove();
	}
	$.ajax({
		type : "post",
		url :  "api/deleteApiRequestParameters",
		data : {
			"id" : id
		},
		dataType : "json",
		success : function(data) {
			if (data.flag) {
				$(evt).parent().parent().remove();
			}
		}
	});
}

function jsonReturnFormat(){
	var str = '<pre style="background: #fafafa; max-height: 400px; overflow: auto">'+
				     '<code style="padding: 0" class="json">'+
					      '{                                                       <br/>'+
					  	   ' "status":"1",                                         <br/>'+
					  	   ' "msg":"success",                                      <br/>'+
					  	   ' "data":{                                              <br/>'+ 
					  	   '    "name":"xxx",                                      <br/>'+
					  	   '    "type":"xxx",                                      <br/>'+
					  	   ' }                                                     <br/>'+
					  	 '}                                                        </br>'+
			         '</code>'+
			   '</pre>';
				
	$(".prediv").empty();
	$(".prediv").append(str);
}

function trim(str){ 
    return str.replace(/(^\s*)|(\s*$)/g, ""); 
}